#!/usr/bin/env node
const Koa = require('koa');
const app = new Koa();

app.use(async(ctx,next)=>{
 // 第三种使用ctx传递
  next();
  const cost = ctx.cost;
//第二种使用return不推荐,要在回调函数前面加上async
//cost cost =await next();
//第一种使用响应头
  //const cost= ctx.response.header.cost;
  console.log(`${ctx.method} ${ctx.path} ${cost}ms`);

});
app.use((ctx,next)=>{
  const start = Date.now();
  next();
  const end =Date.now();
  //第一种使用头传递
  //ctx.set('cost',end-start);
  //第二种使用return传递
 // return end-start;
 // 第三种使用ctx传递
  ctx.cost = end-start;

})
app.use((ctx,next)=>{
  ctx.body='hello world!';
});
//中间件需要app.use来加载,中间件是一个回调函数
app.listen(3000);
console.log('hello world');
//使用x-shell启用的代码：curl http://localhost:3000/
//查看所有的请求信息 curl -i http://localhost:3000/
